package com.star.spring.aop.annotation;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

/**
 * @ClassName AopAspect
 * @Author star
 * @Date 2024/10/18 13:52
 */
//@Component
@Aspect
public class AopAspect {
    // 定义切点
    // 利用execution表达式，关联具体的方法，注意方法名必须完整(可见性+返回值+方法名或*+[参数])
    // 参数使用点(.)作为通配符，固定使用两个点，表示任意多个参数
    @Before("execution(public int com.star.spring.aop.service.CalculateService.*(..))")
    public void before() {
        System.out.println("this is aop execute before");
    }

    @After("execution(public int com.star.spring.aop.service.CalculateService.*(..))")
    public void after() {
        System.out.println("after");
    }


}
